home *** CD-ROM | disk | FTP | other *** search
- # MSDOS DMAKE startup file. Customize to suit your needs.
- # Assumes MKS toolkit for the tool commands, and Zortech C. Change as req'd.
- # See the documentation for a description of internally defined macro#
- # Disable warnings for macros redefined here that were given
- # on the command line.
- __.SILENT := $(.SILENT)
- .SILENT := yes
-
- # Configuration parameters for DMAKE startup.mk file
- # Set these to NON-NULL if you wish to turn the parameter on.
- _HAVE_RCS := yes # yes => RCS is installed.
- _HAVE_SCCS := # yes => SCCS is installed.
-
- # Applicable suffix definitions
- A := .lib # Libraries
- E := .exe # Executables
- F := .for # Fortran
- O := .obj # Objects
- P := .pas # Pascal
- S := .asm # Assembler sources
- V := # RCS suffix
-
- # See if these are defined
- TMPDIR := $(ROOTDIR)/tmp
- .IMPORT .IGNORE : TMPDIR SHELL COMSPEC
-
- # Recipe execution configurations
- # First set SHELL, If it is not defined, use COMSPEC, otherwise
- # it is assumed to be MKS Korn SHELL.
- .IF $(SHELL) == $(NULL)
- .IF $(COMSPEC) == $(NULL)
- SHELL := $(ROOTDIR)/bin/sh$E
- .ELSE
- SHELL := $(COMSPEC)
- .END
- .END
- GROUPSHELL := $(SHELL)
-
- # Now set remaining arguments depending on which SHELL we
- # are going to use. COMSPEC (assumed to be command.com) or
- # MKS Korn Shell.
- .IF $(SHELL)==$(COMSPEC)
- SHELLFLAGS := $(SWITCHAR)c
- GROUPFLAGS := $(SHELLFLAGS)
- SHELLMETAS := *"?<>
- GROUPSUFFIX := .bat
- DIRSEPSTR := \\
- DIVFILE = $(TMPFILE:s,/,\)
- .ELSE
- SHELLFLAGS := -c
- GROUPFLAGS :=
- SHELLMETAS := *"?<>|()&][$$\#`'
- GROUPSUFFIX := .ksh
- .MKSARGS := yes
- DIVFILE = $(TMPFILE:s,/,${DIVSEP_shell_${USESHELL}})
- DIVSEP_shell_yes := \\\
- DIVSEP_shell_no := \\
- .END
-
- # Standard C-language command names and flags
- CC := wcl386 # C-compiler and flags
- CFLAGS +=
-
- AS := tasm31 # Assembler and flags
- ASFLAGS +=
-
- LD = wlink # Loader and flags
- LDFLAGS +=
- LDLIBS =
-
- # Definition of $(MAKE) macro for recursive makes.
- MAKE = $(MAKECMD) $(MFLAGS)
-
- # Language and Parser generation Tools and their flags
- YACC := yacc # standard yacc
- YFLAGS +=
- YTAB := ytab # yacc output files name stem.
-
- LEX := lex # standard lex
- LFLAGS +=
- LEXYY := lex_yy # lex output file
-
- # Other Compilers, Tools and their flags
- PC := any_pc # pascal compiler
- RC := anyf77 # ratfor compiler
- FC := anyf77 # fortran compiler
-
- CO := co # check out for RCS
- COFLAGS += -q
-
- AR := ar # archiver
- ARFLAGS+= ruv
-
- RM := del # remove a file command
- RMFLAGS +=
-
- # Implicit generation rules for making inferences.
- # We don't provide .yr or .ye rules here. They're obsolete.
- # Rules for making *$O
- %$O : %.c ; $(CC) $(CFLAGS) -c $<
- %$O : %.cpp ; $(CC) $(CFLAGS) -c $<
- %$O : %$P ; $(PC) $(PFLAGS) -c $<
- %$O : %$S ; $(AS) $(ASFLAGS) $(<:s,/,\);
- %$O : %.cl ; class -c $<
- %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
-
- # Executables
- %$E : %$O ; $(CC) @$(mktmp,a.lnk $(LDFLAGS) $< $(LDLIBS))
-
- # lex and yacc rules
- %.c : %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@
- %.c : %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@
-
- # RCS support
- .IF $(_HAVE_RCS)
- % : $$(@:d)RCS$$(DIRSEPSTR)$$(@:f)$V;- $(CO) $(COFLAGS) $@
- .NOINFER : $$(@:d)RCS$$(DIRSEPSTR)$$(@:f)$V
- .END
-
- # SCCS support
- .IF $(_HAVE_SCCS)
- % : s.% ; get $<
- .NOINFER : s.%
- .END
-
- # Recipe to make archive files.
- %$A :
- [
- $(AR) $(ARFLAGS) $@ $?
- $(RM) $(RMFLAGS) $?
- ]
-
- # DMAKE uses this recipe to remove intermediate targets
- .REMOVE :; $(RM) $<
-
- # AUGMAKE extensions for SYSV compatibility
- @B = $(@:b)
- @D = $(@:d)
- @F = $(@:f)
- "*B" = $(*:b)
- "*D" = $(*:d)
- "*F" = $(*:f)
- <B = $(<:b)
- <D = $(<:d)
- <F = $(<:f)
- #?B = $(?:b)
- #?F = $(?:f)
- #?D = $(?:d)
-
- # watcom dir
- WINC =C:\watcom\h\
-
- # Turn warnings back to previous setting.
- .SILENT := $(__.SILENT)
-
- # Local init file if any, gets parsed before user makefile
- .INCLUDE .IGNORE: "_startup.mk"
-
- # this is my stuff
- # what the various flags do
- # fp5 - floating point inlined for pentium
- # 5r - pentium register passing
- # s - remove stack check
- # mf - flat memory model
- # zq - operate quietly
- # wx - all warnings on
- # d1 - simple debug info, shouldn`t affect code
- # d1+ - as above, but with unused names
- # 5s - pentium stack passing
- # zp4 - pack structures to 4 bytes
- # hc - do codeview style debug info
- # oneatx - watcom recommended optimizations for pentium (see below)
- # ee ep - add epilogue, prolog hooks for profiler
- # et - add rdtsc style profiler hooks
-
- # /o optimizations
- # t -
- # e -
- # x -
- # e -
- # a -
- # n -
- # i -
- # l -
- # r -
- # + -
-
- #CFLAGS = /oanrlt /fp5 /5r /s /mf /zq /wx
- #CFLAGS = /oanrlt /d2 /fp5 /5r /mf /zq /wx
- #CFLAGS = /oanrlt /fp5 /5r /mf /zq /wx
- #CFLAGS = /d2 /fp5 /5s /mf /zq /wx
-
- # watcom pentium rec.
- #CFLAGS = /oneatx /zp4 /5r /fp5 /s /mf /wx
- #CFLAGS = /oneatx /zp4 /5r /fp5 /s /mf /wx
-
- # for debugging pentium stuff
- #CFLAGS = /d3 /zp4 /5r /fp5 /mf /wx
-
- # for vtune
- #CFLAGS = /hc /d2 /zp4 /5 /fp5 /s /mf /wx /oneatx
-
- # 486
- #CFLAGS = /oneatx /zp4 /4 /fp3 /s /mf /wx
-
- # 386
- #CFLAGS = /oneatx /zp4 /3 /fp3 /s /mf /wx
-
- # super inlining
- #CFLAGS = /d1 /otiexanl+ /fp5 /5r /s /mf /zq /wx
-
- # for mesa
- CFLAGS = /d2 /5r /fp5 /wx /DDEBUG
- #CFLAGS = /otexan /zp4 /mf /5r /fp5 /wx /d1+
-
- PROFILE = /ee /ep
- #CFLAGS += $(PROFILE)
-
- PPROF = /et
- #CFLAGS += $(PPROF)
-
- # 3dfx
- #CFLAGS += /DGLIDE_HARDWARE
-
- #CFLAGS += /D_PC_=1
- #CFLAGS += /D_586_ /D__586__
-
- ASMFLAGS = /ml /m5 /zi /p /r /t /z /w2 /kh10000 /i$(@:d)
-
- .IMPORT : WATCOM
-